11066. Марафонец
Бараш увлекся бегом. А чтобы не
было скучно, во время бега он слушает музыку.
Сегодня Бараш забыл включить
секундомер в начале пробежки, поэтому теперь не знает, сколько времени он
бегал. Однако, он естественно не забыл включить музыку. Теперь он хочет
вычислить длительность пробежки, используя информацию о песнях, которые он послушал.
Всего за время пробежки он
целиком послушал n песен. Для каждой песни он выписал ее длительность в
формате mm:ss. До двоеточия стоят ровно две цифры, обозначающие
количество минут, а после – ровно две цифры, обозначающие количество секунд.
Каждая песня длится строго меньше часа, количество минут и секунд лежат в
отрезке от 0 до 59 включительно.
Помогите Барашу определить
длительность пробежки и выведите ее в формате hh:mm:ss.
Сначала ровно две цифры, обозначающие количество часов, затем две цифры – количество
минут, и наконец – количество секунд. Гарантируется, что Бараш бегал строго
меньше суток. Количество часов должно лежать в отрезке от 0 до 23, а
количество минут и секунд – в отрезке от 0 до 59.
Вход. В первой строке дано одно целое
число n (1 ≤ n ≤ 1000) – количество песен,
которые Бараш успел послушать за время пробежки.
Далее даны n строк, каждая
из которых имеет вид mm:ss – длительность очередной песни.
Гарантируется, что длительности всех песен положительны.
Выход. Выведите длительность пробежки
Бараша в формате hh:mm:ss. Гарантируется, что Бараш бегал
строго меньше суток.
Пример
входа 1 |
Пример
выхода 1 |
2 10:01 00:59 |
00:11:00 |
|
|
Пример
входа 2 |
Пример
выхода 2 |
3 12:34 23:45 34:56 |
01:11:15 |
математика
Вычислим суммарную длину всех песен в секундах. Для этого
переведем время каждой песни в секунды и прибавим ее к сумме res.
Теперь остается перевести res секунд в формат hh:mm:ss. Должно иметь место
равенство: res = 3600 * hh + 60 * mm + ss. Отсюда
·
hh = res
/ 3600;
·
mm = (res – h * 3600) / 60;
·
ss = res % 60;
Пример
Рассмотрим второй тест.
Суммарная длина песен в секундах равна 754 + 1425 + 2096 = 4275.
Представим ее в формате hh:mm:ss.
·
hh = 4275 / 3600 = 1;
·
mm = (4275 – 1 * 3600) / 60 = 11;
·
ss = 4275 % 60 = 15;
Таким образом, 4275 секунд равны 1:11:15.
Реализация алгоритма
Читаем входные данные.
scanf("%d", &n);
res = 0;
for (i = 0; i < n; i++)
{
Длительность
песни в x минут и y секунд переводим в секунды: 60
* x + y. Прибавляем ее к суммарной
длине res всех
песен.
scanf("%d:%d", &x, &y);
res += x * 60 + y;
}
Переводим
res секунд в h часов m минут s секунд. Имеет место равенство:
res = 3600 * h + 60 * m + s
h = res / 3600;
m = (res - h * 3600)
/ 60;
s = res % 60;
Выводим
ответ.
printf("%02d:%02d:%02d\n", h, m, s);